package com.asset.dispoal.logger.annoation;

import com.asset.dispoal.logger.DefaultUserGetManager;
import com.asset.dispoal.logger.IUserGetManager;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 系统日志记录
 *
 * @author mhuang
 * @since 1.0.0
 */
@Documented
@Retention(RUNTIME)
@Target(METHOD)
public @interface SysLog {

    /**
     * 日志名
     *
     * @return
     */
    String name() default "";

    /**
     * 日志类型（可自行定义)
     *
     * @return
     */
    String type() default "1";

    /**
     * 用户获取管理
     *
     * @return
     */
    Class<? extends IUserGetManager> userGetManager() default DefaultUserGetManager.class;

    /**
     * 忽略请求的数据
     *
     * @return
     */
    boolean ignoreReqData() default false;

    /**
     * 忽略应答的数据
     *
     * @return
     */
    boolean ignoreRestData() default false;

    /**
     * 忽略异常的数据
     *
     * @return
     */
    boolean ignoreErrorData() default false;
}
